﻿using System.Collections.ObjectModel;
namespace Renci.Data.Interop.OpenGIS.Gml
{
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.opengis.net/gml")]
    [System.Xml.Serialization.XmlRootAttribute("MultiSurface", Namespace = "http://www.opengis.net/gml", IsNullable = false)]
    public class MultiSurfaceType : AbstractGeometricAggregateType
    {
        private Collection<SurfacePropertyType> _surfaceMemberItems = new Collection<SurfacePropertyType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("surfaceMember")]
        public Collection<SurfacePropertyType> SurfaceMemberItems 
        {
            get
            {
                return this._surfaceMemberItems;
            }
        }

        private Collection<AbstractSurfaceType> _surfaceMembers = new Collection<AbstractSurfaceType>();
        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("Polygon", Type = typeof(PolygonType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("CompositeSurface", Type = typeof(CompositeSurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("PolyhedralSurface", Type = typeof(PolyhedralSurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("Tin", Type = typeof(TinType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("TriangulatedSurface", Type = typeof(TriangulatedSurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("Surface", Type = typeof(SurfaceType), IsNullable = false)]
        [System.Xml.Serialization.XmlElementAttribute("OrientableSurface", Type = typeof(OrientableSurfaceType), IsNullable = false)]
        public Collection<AbstractSurfaceType> SurfaceMembers 
        {
            get
            {
                return this._surfaceMembers;
            }
        }
    }
}
